// pages/edu/index/detail/index.js
import{ Vod } from '../../../model/vod.js'
import {Comment} from '../../../model/comment.js'

var vodModel=new Vod()
var commentModel=new Comment()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    id:0,
    currentTime:0,
    info:{},
    vodUserList:{}, //视频观看用户
    userMask:false,
    commentForm:false,
    commentContent:'',
    userInfo:{},
    commentListIndex:0,  //评论列表分页
    commentList:{},
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    if(options.id){
      this.data.id=options.id
      this._getInfo()
    }
    
    this._getUserInfo()
    this._getCommentList()
  },

  
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },


  //--------------自定义事件---------------

  /**
   * 详情 
   * @param {*} id 
   */
  _getInfo(){
    let that=this
    vodModel.getInfo(this.data.id,(res)=>{
      this.setData({info:res.data})
      if(!res.data.vod_url&&res.data.is_end!=1){
        vodModel.setEnd(this.data.id)
      }
    })
  },

  /**
   * 播放器对象 
   */
  _getVideoContext(){
    let video= wx.createVideoContext('video')
    console.log(video)
  },

  /**
   * 设置当前播放时间
   */
  _setCurrentTime(){
    let data={
      'id':this.data.id,
      'current_time':this.data.currentTime
    }
    vodModel.setCurrentTime(data)
  },

  /**
   * 用户信息
   */
  _getUserInfo(){
    wx.getUserInfo({
      success:(res)=> {
        this.setData({userInfo:res.userInfo})
      }
    })
  },

  /**
   * 视频评论列表
   */
  _getCommentList(){
    let data={
      vod_id:this.data.id,
      index:this.data.commentListIndex
    }
    
    commentModel.getList(data,(res)=>{
      this.setData({
        commentList:res
      })
    })
  },

  /**
   * 暂停
   * @param {*} event 
   */
  onPause(event){
    console.log(event)
    this._getVideoContext()
  },

  /**
   * 播放进度
   * @param {*} event 
   */
  onTimeUpdate(event){
    let currentTime=event.detail.currentTime
    this.data.currentTime=currentTime
  },
  
  /**
   * 关闭当前页面
   */
  onUnload() {
    this._setCurrentTime()
  },

  /**
   * 播放结束
   * @param {*} event 
   */
  onEnd(event){
    let id=this.data.id
    vodModel.setEnd(id)
    this._setCurrentTime()
  },

  /**
   * 显示全部观看用户
   */
  onShowUser(){
    vodModel.getVodUser(this.data.id,(res)=>{
      this.setData({
        'userMask':true,
        vodUserList:res.data
      })
    })
  },
  
  /**
   * 关闭用户窗口
   */
  onUserClose(){
    this.setData({
      userMask:false
    })
  },

  /**
   * 评论窗口
   */
  onComment(){ 
    this.setData({
      commentForm:true
    }) 
  },

  /**
   * 评论窗口关闭
   */
  onCommmentClose(){
    this.setData({
      commentForm:false
    })
  },

  /**
   * 评论内容
   */
  onCommentOk(event){
    let value=event.detail.value
    this.setData({
      commentContent:value
    })
  },

  /**
   * 提交评论内容
   */
  onCommentSubmit(){
    let commentContent=this.data.commentContent
    if(commentContent){
      let data={
        vod_id:this.data.id,
        content:commentContent
      }

      commentModel.setComment(data,(res)=>{
        wx.lin.showMessage({
          type:'success',
          content:'评论成功'
        })

        this.onCommmentClose()

      },(res)=>{
        wx.lin.showMessage({
          type:'error',
          content:res.msg
        })
      })

    }else{
      wx.lin.showMessage({
        type:'warning',
        content:'请输入评论内容~'
      })
    }
  },

  /**
   * 回复
   * @param {*} event 
   */
  onReplay(event){
    let comment_id=event.currentTarget.dataset.commentid;
    wx.navigateTo({
      url: '../comment-reply/index?comment_id='+comment_id,
    })
  },

  /**
   * 收藏
   * @param {*} event 
   */
  onCollect(event){
    let vod_id=this.data.id
    vodModel.setVodCollect(vod_id,(res)=>{
      wx.lin.showMessage({
        type:'success',
        content:res.msg
      })
      let info=this.data.info
      info['is_collect']=1
      this.setData({
        info
      })
    },(res)=>{
      wx.lin.showMessage({
        type:'warning',
        content:res.msg
      })
    })
  }
})